In a collaborative filtering setting (e.g., one class collaborative filtering), a binary ratings matrix can represent some form of “rating” by users over objects. For example, data contained in the binary ratings matrix could be whether or not one of many (e.g., hundreds of millions) of users visit one of many (e.g., billions) of uniform resource locators (URLs). The matrix is said to be binary because the data is limited to one of two states (e.g., “yes” or “no,” which can be represented, for example, by a 1 or a 0). Such a binary ratings matrix may be sparse (e.g., populated mostly by zeros as users may not rate a significant percentage of the objects). However, substituting zeros for instances where a user's preference is unknown can yield poor results based on a faulty assumption. Scaling collaborative filtering in this setting may be a technical challenge.